﻿/**
 * Page页面相关
 * @namespace Page
 * @name core.Page
 * @static
 */
core.Page = {
  /**
   * 判断当前页面是否是标准模式
   * @name core.Page.isStrictMode
   * @function
   * @property isStrictMode
   *
   * @return {Int} Y坐标值
   */
  isStrictMode: document.compatMode != "BackCompat",
  /**
   * 获取鼠标点击位置的X坐标
   * @name core.Page.pointerX
   * @function
   * @grammar core.Page.pointerX(event)
   * @param {Object} event event事件
   *
   * @return {Int} X坐标值
   */
  pointerX: function (event) {
    return event.pageX || (event.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft));
  },
  /**
   * 获取鼠标点击位置的Y坐标
   * @name core.Page.pointerY
   * @function
   * @grammar core.Page.pointerY(event)
   * @param {Object} event event事件
   *
   * @return {Int} Y坐标值
   */
  pointerY: function (event) {
    return event.pageY || (event.clientY + (document.documentElement.scrollTop || document.body.scrollTop));
  },
  /**
   * 获取页面高度
   * @name core.Page.pageHeight
   * @function
   * @grammar core.Page.pageHeight()
   *
   * @return {Int} 页面高度
   */
  pageHeight: function () {
    return this.isStrictMode ? Math.max(document.documentElement.scrollHeight, document.documentElement.clientHeight) : Math.max(document.body.scrollHeight, document.body.clientHeight);
  },
  /**
   * 获取页面宽度
   * @name core.Page.pageWidth
   * @function
   * @grammar core.Page.pageWidth()
   *
   * @return {Int} 页面宽度
   */
  pageWidth: function () {
    return this.isStrictMode ? Math.max(document.documentElement.scrollWidth, document.documentElement.clientWidth) : Math.max(document.body.scrollWidth, document.body.clientWidth);
  },
  /**
   * 获取窗口宽度
   * @name core.Page.winWidth
   * @function
   * @grammar core.Page.winWidth()
   *
   * @return {Int} 窗口宽度
   */
  winWidth: function () {
    return this.isStrictMode ? document.documentElement.clientWidth : document.body.clientWidth;
  },
  /**
   * 获取窗口高度
   * @name core.Page.winHeight
   * @function
   * @grammar core.Page.winHeight()
   *
   * @return {Int} 窗口高度
   */
  winHeight: function () {
    return this.isStrictMode ? document.documentElement.clientHeight : document.body.clientHeight;
  },
  /**
   * 获取滚动条向上滚动的距离
   * @name core.Page.scrollTop
   * @function
   * @grammar core.Page.scrollTop()
   *
   * @return {Int} 滚动条向上滚动的距离
   */
  scrollTop: function () {
    if (core.Browser.WebKit) {
      return window.pageYOffset;
    }
    return this.isStrictMode ? document.documentElement.scrollTop : document.body.scrollTop;
  },
  /**
   * 获取滚动条向左滚动的距离
   * @name core.Page.scrollLeft
   * @function
   * @grammar core.Page.scrollLeft()
   *
   * @return {Int} 滚动条向左滚动的距离
   */
  scrollLeft: function () {
    if (core.Browser.WebKit) {
      return window.pageXOffset;
    }
    return this.isStrictMode ? document.documentElement.scrollLeft : document.body.scrollLeft;
  }
};
